/**
 * 选项数据执行优先级: peaceOption > enum & enumLabel > peaceApi,任何一项拿到数据后,排在后面的都不再执行
 * 关于 enum & enumLabel的demo说明
 * export enum OperatingSystemEnum {
 *     iOS = 'iOS',
 *     Android = 'Android',
 *     Other = 'Other'
 *   }
 *
 *   export const OperatingSystemEnumLabel: Record<OperatingSystemEnum, string> = {
 *     [OperatingSystemEnum.iOS]: 'iOS系统',
 *     [OperatingSystemEnum.Android]: 'Android系统',
 *     [OperatingSystemEnum.Other]: '其它系统'
 *   }
 */
export default interface PeaceOption {
  // 选项 label 的字段名
  peaceLabelField?: string
  // 选项 value 的字段名
  peaceValueField?: string
  // 选项组 children 的字段名
  peaceChildField?: string
  // 用于设置option，优先级高于 peaceOptionApi enum
  peaceOption?: unknown[]
  // 用于设置option,优先级高于 peaceOptionApi，低于 peaceOption
  enum?: object
  enumLabel?: object
  // 优先级低于 enum peaceOption,从接口拿到数据后,直接设置到peaceOption中
  peaceApi?: (input?: object) => Promise<unknown>
  // peaceOptionApi 的固定入参,历史原因一些接口设计了固定入参或将多种业务写到了一个接口中使用参数来区分
  peaceApiParam?: object
}
